
const util = require('../../utils/util.js');

var refresh = false;
Page({
   data: {
      winWidth: 0,      // 设备屏幕宽
      winHeight: 0,     // 设备屏幕高

      datalist: [],

      dataListDateCurrent: 0,       // 请求参数：日期
      dataListDateCount: 0,         // 请求次数

      loadmorehidden: false,     // 上拉加载更多 动画
      refreshhidden: false       // 下拉刷新动画
   },
   onLoad: function (options) {

      var that = this;

      wx.getSystemInfo({
         success: function (res) {
            that.setData({
               winWidth: res.windowWidth,
               winHeight: res.windowHeight
            });
         }
      });

      // 请求 精选 列表数据（最新数据--今日）news/latest
      util.AJAX("news/latest", function (res) {

         var arr = res.data;
         // console.log(JSON.stringify(arr));
         var format = util.getFormatDate(arr.date);

         arr["dateDay"] = format.dateDay; // 格式化日期 方便加载指定日期数据 获取星期几方便显示

         var list = that.data.datalist;

         // 重新写入数据
         that.setData({
            datalist: list.concat(arr),      // 拼接列表数据
            dataListDateCurrent: arr.date,   // 请求日期
            dataListDateCount: 1
         });

      });

   },
   // 下拉 刷新列表(滚到顶部)
   scrolltotoper: function (e) {

      if (!refresh) {
         var that = this;

         // wx.showLoading({
         //    title: '正在刷新...',
         // })

         refresh = true;

         // 显示刷新动画
         that.setData({
            refreshhidden: true
         })
         // 请求 精选 列表数据（最新数据--今日）news/latest
         util.AJAX("news/latest", function (res) {

            // 数据加载完成后 延迟隐藏loading
            setTimeout(function () {
               wx.clearStorageSync(); // 清空数据

               // 重置列表为空
               that.setData({
                  datalist: []
               })

               refresh = false;

               var arr = res.data;

               var format = util.getFormatDate(arr.date);
               arr["dateDay"] = format.dateDay;

               var list = that.data.datalist;
               // 重新写入数据
               that.setData({
                  datalist: list.concat(arr),   // 拼接列表数据
                  dataListDateCurrent: arr.date,// 当前日期
                  dataListDateCount: 1,
                  refreshhidden: false

               });
               console.log("刷新完成");
               // wx.hideLoading();
            }, 3000);

         });
      } else {
         console.log("正在刷新...");
      }
   },
   // 上拉 加载更多(滚到底部)
   scrolltolower: function (e) {
      console.log('滚动到底部');


      var that = this;

      // 加载更多 loading
      that.setData({
         loadmorehidden: false
      })

      var currentDate = this.data.dataListDateCurrent; // 请求参数：日期

      console.log("当前日期：" + currentDate);
      console.log("加载次数：" + this.data.dataListDateCount);

      // 限制加载次数
      if (this.data.dataListDateCount >= 3) {

         that.setData({ // 加载更多 loading
            loadmorehidden: true
         });

      } else {
         // 记录请求日期参数，避免滚动到底部事件，多次触发相同请求
         if (currentDate == wx.getStorageSync("currentDate")) {
            console.log(currentDate + "已发起请求!");
         } else {
            wx.setStorageSync("currentDate", currentDate)
            // 请求 精选 列表数据（历史数据）news/latest
            util.AJAX("news/before/" + currentDate, function (res) {

               var arr = res.data;
               // 新增JSON字段dateDay：格式化日期 08月03日 星期四
               var format = util.getFormatDate(arr.date);
               arr["dateDay"] = format.dateDay;

               var list = that.data.datalist;

               that.setData({
                  datalist: list.concat(arr),    // 累加列表数据                      
                  dataListDateCurrent: arr.date, // 请求日期-1
                  dataListDateCount: that.data.dataListDateCount + 1     // 统计加载次数
               });

            });
         }

      }
   },
   onReady: function (e) {
      console.log("onReady 清空缓存！");
      wx.clearStorageSync();
   }
})